今天,我們開始捲起袖子,著手規劃 ColorCodeTag 這項專案。而軟體開發前的需求確認猶如中華料理的備料,需要花費一定的時間與心力進行規劃與準備。
通常在這時間點,Product Owner 會召集團隊舉行啟動會議 (Kick-off meeting),會議的過程包含介紹團隊成員與角色、專案的需求分工與交付對象、目標與產品規格等。
產品開發的規格常取決於用戶的需求與預算,維運人員通常也能在 Kick-off meeting 時決定部署所需要的機器規格及中間件等。
Frontend: Angular 14
Backend: Java 11 with spring boot framework
DataBase: SQL Server
Containerization: Docker
CI/CD Tools: Jenkins
Registory: Harbor / gitlab
DevOps Server: Ubuntu 20.04 (4 core, 16 GB ram)
Production Server: Ubuntu 20.04 (2 core, 2GB ram)
這次的衝刺計畫重點如下:
預期 ColorCodeTag 的 DevOps 最終將會走過以下的流程:
完成了 Sprint 的規劃,我們來設定第一期 Sprint 的目標:
探索需求並具現化為規格
User Story (使用者故事),是一種描述需求的方式,會用一句簡單的話,來描述用戶的需求及其價值,其範例為:
身為一個 " ... ", 我希望能 " ... ", 好讓我可以 " ... " 。
不難看出核心圍繞在一個具備特定身分的使用者 (或稱角色),想藉由某個東西 (產品,工具,或功能),能夠幫助他完成某件事情。如此以 ColorCodeTag 為例,我們可以寫出:
身為一個系統分析師,我希望能將一張特定的照片快速的轉成一組色碼,讓我能參考並應用在 Web 主題開發上。
在完成 User Story 後,我們便能將用戶在平台上會執行的動作由左到右逐一列舉,這裡使用 miro 進行繪製與共同討論:
通常這時可能發生一件事情,在逐一列舉使用者的活動時,會刺激團隊甚是客戶的發想,讓新的功能與需求被加入 User Story Mapping 中,而後續每個 Sprint 結束時,也會迭代更新 User Story。
另外,在這時開發團隊可能已經討論並發現,若要完成可交付的 Release 1 階段之試做,可以先完成照片的上傳、解析,並回傳一組色碼字串作為 Product Backlogs 並置於 Sprint Backlog 內。在後續的 Releases 中,便可逐步加入各項 feature,如前端畫面、將色碼從字串改為顏色呈現、在後端使用不同的演算法、色碼可再調整、或提供使用者選擇色碼的數量等。
在這個階段出現想法是非常好的現象,也能讓部分需求在 Sprint 結束前率先被發掘,而 Product Owner 則需要擔起取捨與排序的責任;而 Scrum Master 也要適當控制任務卡片的範圍,避免需求無限膨脹。
今天,我們正式規劃了 ColorCodeTag 專案,並撰寫 User Story,探索用戶的活動,明天,我們將針對需求繪製出 wireframe,並且製作 Prototype,讓我們能具現化規格,同時、也能進一步挖掘問題、調整方向。
在實際的軟體敏捷開發上,一期 Sprint 的實作可能會是 ColorCodeTag 的數倍,ColorCodeTag 專案的精神在於介紹與實作 DevOps,在鐵人賽的尾聲,我們再一同回顧並想像在正式商業案中,ColorCodeTag 的 Sprint 會長成什麼樣子。